count = 10;
squareIter = 1000;
bestTenEnzymeMatrtix = cell(1,count);
bestTenError = zeros(1,count);

for e = 1:count;
    enzymeMatrix = cell(squareIter,squareIter);           
    absoluteErrorSum = cell(squareIter,squareIter);
    iterations = squareIter^2;                        
    concMap = flipud(combn([0,12.5,25,50],3));   
    errorSum = zeros(1,iterations);             
    enzymeSpecifcityData = zeros(3,3);
    y = datasample(1:64,48,'Replace',false);
    
    for p = 1:iterations
        for n = 1:9
            enzymeSpecifcityData(n) = rand*0.2-0.1;
        end
        predictedKobs = (concMap(y,:)*enzymeSpecifcityData);
        predicteduM = (inv(enzymeSpecifcityData)*actualKobs(y,:)')';
        enzymeMatrix{p} = enzymeSpecifcityData;
        errorSum(p) = sum(sum(abs(concMap(y,:) - predicteduM)));
    end
    
    [minimim pos] = min(errorSum);
    bestTenError(e) = errorSum(pos);
    bestTenEnzymeMatrtix{e} = enzymeMatrix{pos}
    predicteduM = (inv(enzymeMatrix{pos})*actualKobs')';
    predicteduM(find(predicteduM<0))=0;
end

[minimim pos] = min(bestTenError);
bestTenEnzymeMatrtix{pos}
bestPredicteduM = (inv(bestTenEnzymeMatrtix{pos})*actualKobs')';
bestTenError(pos)